component implements="com.firemoss.atonement.mapper.resolution.IValueResolverFactory"
{
	variables.listResolver = new ListValueResolver();
	variables.dictionaryResolver = new DictionaryValueResolver();
	variables.simpleAssignmentValueResolver = new SimpleAssignmentValueResolver();
	
	public IValueResolver function create(type)
	{
		try
		{
			if ( type eq "array" )
			{
				return listResolver;
			}
			
			if ( type eq "HashMap" || type	 eq "struct" )
			{
				return dictionaryResolver;
			}
		}
		catch(Any e) 
		{
			writeLog( "Falling back to simple assignment value resolver due to the following exception: " & e.message );
			return simpleAssignmentValueResolver;
		}
		
		return simpleAssignmentValueResolver;
	}
}